有时候想把PDF中的图片文件提取出来,身为程序员的我当然是自己写段代码来实现,先看看了网上的方法,都是逐行遍历,正则匹配来提取什么的,其实没有那么复杂,PyMuPdf官方文档里自带就有提取图片文件的方法,非常简单,下来用代码来记录下:
1.提取图片
#coding:utf-8
import fitz,os
doc = fitz.open('E:\\files\\25109878.pdf')
imgcount=0
for page in doc:
imageList = page.getImageList()
print(imageList)
for imginfo in imageList:
pix = fitz.Pixmap(doc, imginfo[0])
pix.writePNG(os.path.join("test\\t_{}.png".format(imgcount)))
imgcount+=1
短短几行代码聊表心意,通过page.getImageList()提取到图片列表信息,然后在使用fitz.Pixmap提取对应的图片内容,就是这么简单,我们来提取下一张发票里的图片:
电子发票里基本都是文字形式的,只有二维码和下方印章的图片,执行上面的代码看看: